public class MethodDemo11 {

    public static void main(String[] args) {
        /*
            阶乘
            6! = 6*5*4*3*2*1
            5! = 5*4*3*2*1
         */
        int j = 1;
        for (int i = 6; i > 0; i--) {
            j *= i;// j = j*i
        }
        System.out.println(j);

        /*

            6! = 6*5!
            5! = 5*4!
            4! = 4*3!
            3! = 3*2!
            2! = 2*1!
            1!=1




            6! = 6*5*4*3*2*1
            5! = 5*4*3*2*1
            4! = 4*3*2*1
            3! = 3*2*1
            2! = 2*1
            1!=1
         */


        /*
            6! = 6*5!
            5! = 5*4!
            4! = 4*3!
            3! = 3*2!
            2! = 2*1!
            1!=1
         */
        int retult = a(6);
        System.out.println(retult);
    }

    // a方法用来求6的阶乘
    public static int a(int i) {
        if (i == 1) {
            return 1;
        }
        return i * a(i - 1);
    }

    /*
        a(6) = 6*a(5)
        a(5) = 5*a(4)
        a(4) = 4*a(3)
        a(3) = 3*a(2)
        a(2) = 2*a(1)
        a(1) = 1
     */

//    // b方法来求5的阶乘
//    public static int b() {
//        return 5 * c();
//
//    }
//
//    // c方法来求4的阶乘
//    public static int c() {
//        return 4 * d();
//    }
//
//    // d方法来求3的阶乘
//    public static int d() {
//        return 3 * f();
//    }
//
//    // f方法来求2的阶乘
//    public static int f() {
//        return 2 * g();
//    }
//
//    //g方法来求1的阶乘
//    public static int g() {
//        return 1;
//    }
}
